//package com.ihd.ihardware.common.utils;
//
//
//import java.math.BigDecimal;
//import java.util.Objects;
//
///**
// *
// */
//
//public class DataPhysical3Utils {
//
//    private static final String LOW_TAG = "-1";
//    private static final String NORMAL_TAG = "0";
//    private static final String HIGH_TAG = "1";
//
//    private static final String THIN_DES = "瘦";
//    private static final String LEAN_DES = "偏瘦";
//    private static final String STANDARD_DES = "标准";
//    private static final String CHUBBY_DES = "偏胖";
//    private static final String OBESITY_DES = "肥胖";
//    private static final String OBESE_DES = "极度肥胖";
//
//    public static String BMITag(Byte sex, Double BMI) {
//        // 男 20.5,23.0
//        if (sex.equals(SexEnum.MAN.getKey())) {
//            if (BMI < 20.5) {
//                return LOW_TAG;
//            }
//            if (BMI > 23.0) {
//                return HIGH_TAG;
//            }
//            return NORMAL_TAG;
//        }
//        // 女 21.0,24.0
//        if (sex.equals(SexEnum.WOMAN.getKey())) {
//            if (BMI < 21.0) {
//                return LOW_TAG;
//            }
//            if (BMI > 24.0) {
//                return HIGH_TAG;
//            }
//            return NORMAL_TAG;
//        }
//        return NORMAL_TAG;
//    }
//
//
//    /**
//     * BMI（体重/（身高*身高）） 70kg÷（1.75×1.75）=22.86
//     *
//     * @param weight
//     * @param height
//     * @return
//     */
//    public static BigDecimal getBMI(BigDecimal weight, BigDecimal height) {
//        //70kg÷（1.75×1.75）=22.86
//        if (Objects.isNull(height) || height.intValue() < 1) {
//            return BigDecimal.ZERO;
//        }
//        return weight.divide(height.multiply(height), 2).setScale(2, BigDecimal.ROUND_HALF_UP);
//    }
//
//    /**
//     * BMI描述
//     *
//     * @return
//     */
//    public static String getBMIDes(Byte sex, BigDecimal BMI) {
//        // 男 BMI_DESCRIPTION 18.5,20.5,23.0,25.5,29.9
//        if (sex.equals(SexEnum.MAN.getKey())) {
//            //瘦<19.0
//            if (-1 == BMI.compareTo(new BigDecimal(18.5))) {
//                return THIN_DES;
//            }
//            //偏瘦19.0~20.9
//            if (0 == BMI.compareTo(new BigDecimal(18.5)) || 0 >= BMI.compareTo(new BigDecimal(20.5))) {
//                return LEAN_DES;
//            }
//            //标准21.0~23.9
//            if (0 == BMI.compareTo(new BigDecimal(20.5)) || 0 >= BMI.compareTo(new BigDecimal(23.0))) {
//                return STANDARD_DES;
//            }
//            //偏胖24.0~25.4
//            if (0 == BMI.compareTo(new BigDecimal(23.0)) || 0 >= BMI.compareTo(new BigDecimal(25.5))) {
//                return CHUBBY_DES;
//            }
//            //肥胖25.5~29.9
//            if (0 == BMI.compareTo(new BigDecimal(25.5)) || 0 >= BMI.compareTo(new BigDecimal(29.9))) {
//                return OBESITY_DES;
//            }
//            //极度肥胖>29.9
//            if (1 == BMI.compareTo(new BigDecimal(29.9))) {
//                return OBESE_DES;
//            }
//        }
//        // 女 19.0,21.0,24.0,25.5,29.9
//        if (sex.equals(SexEnum.WOMAN.getKey())) {
//            //瘦<18.5
//            if (-1 == BMI.compareTo(new BigDecimal(19.0))) {
//                return THIN_DES;
//            }
//            //偏瘦18.6~20.4
//            if (0 == BMI.compareTo(new BigDecimal(19.0)) || 0 >= BMI.compareTo(new BigDecimal(21.0))) {
//                return LEAN_DES;
//            }
//            //标准20.5~22.9
//            if (0 == BMI.compareTo(new BigDecimal(21.0)) || 0 >= BMI.compareTo(new BigDecimal(24.0))) {
//                return STANDARD_DES;
//            }
//            //偏胖23.0~25.4
//            if (0 == BMI.compareTo(new BigDecimal(24.0)) || 0 >= BMI.compareTo(new BigDecimal(25.5))) {
//                return CHUBBY_DES;
//            }
//            //肥胖25.5~29.9
//            if (0 == BMI.compareTo(new BigDecimal(25.5)) || 0 >= BMI.compareTo(new BigDecimal(29.9))) {
//                return OBESITY_DES;
//            }
//            //极度肥胖>29.9
//            if (1 == BMI.compareTo(new BigDecimal(29.9))) {
//                return OBESE_DES;
//            }
//        }
//        return STANDARD_DES;
//    }
//
//    /**
//     * 脂肪重量 = 体重*体脂率
//     *
//     * @return
//     */
//    public static BigDecimal getFatWeight(BigDecimal weight, BigDecimal fat) {
//        return weight.multiply(fat).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 脂肪重量描述
//     *
//     * @return
//     */
////    public static String getFatWeightDes() {
////        return "";
////    }
//
//    /**
//     * 体脂率=(1.898*BMI-23.4)*0.95/100
//     *
//     * @param sex
//     * @param BMI
//     * @return
//     */
//    public static BigDecimal getFat(Byte sex, BigDecimal BMI) {
//        return new BigDecimal(1.898).multiply(BMI).subtract(new BigDecimal(23.4))
//                .multiply(new BigDecimal(0.0095)).abs().setScale(4, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 体脂率描述
//     *
//     * @return
//     */
//    public static String getFatDes(Byte sex, BigDecimal fat) {
//        if (null == fat) {
//            return "";
//        }
//        fat = fat.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        // 偏瘦11.0,标准17.0,偏胖27.0肥胖
//        if (-1 == fat.compareTo(new BigDecimal(11.0))) {
//            return "偏瘦";
//        }
//        if (0 == fat.compareTo(new BigDecimal(11.0)) || 0 >= fat.compareTo(new BigDecimal(17.0))) {
//            return "标准";
//        }
//        if (0 == fat.compareTo(new BigDecimal(17.0)) || 0 >= fat.compareTo(new BigDecimal(27.0))) {
//            return "偏胖";
//        }
//        if (1 == fat.compareTo(new BigDecimal(27.0))) {
//            return "肥胖";
//        }
//        return "";
//    }
//
//    /**
//     * 骨骼肌率=骨骼肌重量/体重*100%
//     *
//     * @return
//     */
//    public static BigDecimal getSkeletalMuscle(BigDecimal weight, BigDecimal skeletalMuscleWeight) {
//        return skeletalMuscleWeight.divide(weight, BigDecimal.ROUND_HALF_EVEN).setScale(4, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 骨骼肌率描述
//     *
//     * @return
//     */
//    public static String getSkeletalMuscleDes(Byte sex, BigDecimal skeletalMuscle) {
////        25，30不足，标准，优
//        if (null == skeletalMuscle) {
//            return "";
//        }
//        skeletalMuscle = skeletalMuscle.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        if (-1 == skeletalMuscle.compareTo(new BigDecimal(25.0))) {
//            return "不足";
//        }
//        if (0 == skeletalMuscle.compareTo(new BigDecimal(25.0)) || 0 >= skeletalMuscle.compareTo(new BigDecimal(30.0))) {
//            return "标准";
//        }
//        if (1 == skeletalMuscle.compareTo(new BigDecimal(30.0))) {
//            return "优";
//        }
//        return "";
//    }
//
//    /**
//     * 骨骼肌重量= ((实测体重-标准体重+1)*0.0018+0.243)*100
//     *
//     * @return
//     */
//    public static BigDecimal getSkeletalMuscleWeight(BigDecimal weight, BigDecimal standardWeight) {
//        return weight.subtract(standardWeight).add(new BigDecimal(1))
//                .multiply(new BigDecimal(0.0018)).add(new BigDecimal(0.243))
//                .multiply(new BigDecimal(100)).abs().setScale(2, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 骨骼肌重量描述
//     *
//     * @return
//     */
////    public static String getSkeletalMuscleWeightDes(Byte sex, BigDecimal obesity) {
////    }
//
//    /**
//     * 肌肉重量=((实际体重-标准+1)*0.004+0.46)*100
//     *
//     * @return
//     */
//    public static BigDecimal getMuscleWeight(BigDecimal weight, BigDecimal standardWeight) {
//        return ((weight.subtract(standardWeight).add(new BigDecimal(1)))
//                .multiply(new BigDecimal(0.004)).add(new BigDecimal(0.46)))
//                .multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//    }
//
////    /**
////     * 肌肉重量描述
////     *
////     * @return
////     */
////    public static String getMuscleWeightDes(Byte sex, BigDecimal muscleWeight) {
////        if (null == muscleWeight) {
////            return "";
////        }
////        if (-1 == muscleWeight.compareTo(new BigDecimal(32.9))) {
////            return "不足";
////        }
////        if (0 == muscleWeight.compareTo(new BigDecimal(32.9)) || 0 >= muscleWeight.compareTo(new BigDecimal(37.5))) {
////            return "标准";
////        }
////        if (1 == muscleWeight.compareTo(new BigDecimal(37.5))) {
////            return "优";
////        }
////        return "";
////    }
//
//
//    /**
//     * 肌肉率=肌肉重量/体重
//     *
//     * @param weight
//     * @param muscleWeight
//     * @return
//     */
//    public static BigDecimal getMuscle(BigDecimal weight, BigDecimal muscleWeight) {
//        return muscleWeight.divide(weight, BigDecimal.ROUND_HALF_EVEN).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 肌肉率描述
//     *
//     * @return
//     */
//    public static String getMuscleDes(Byte sex, BigDecimal muscle) {
//        //  4,52.4 不足，标准，优
//        if (null == muscle) {
//            return "";
//        }
//        muscle = muscle.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        if (-1 == muscle.compareTo(new BigDecimal(44.0))) {
//            return "不足";
//        }
//        if (0 == muscle.compareTo(new BigDecimal(44.0)) || 0 >= muscle.compareTo(new BigDecimal(52.4))) {
//            return "标准";
//        }
//        if (1 == muscle.compareTo(new BigDecimal(52.4))) {
//            return "优";
//        }
//        return "";
//    }
//
//    /**
//     * 内脏脂肪=0.636*脂肪重量
//     *
//     * @param fatWeight
//     * @return
//     */
//    public static BigDecimal getVisceralFat(BigDecimal fatWeight) {
//        return fatWeight.multiply(new BigDecimal(0.636)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 内脏脂肪描述
//     *
//     * @return
//     */
//    public static String getVisceralFatDes(Byte sex, BigDecimal visceralFat) {
//        //        标准	9,14
////        超标	9,14
////        过多	9,14
//        if (null == visceralFat) {
//            return "";
//        }
//        if (-1 == visceralFat.compareTo(new BigDecimal(9.0))) {
//            return "标准";
//        }
//        if (0 == visceralFat.compareTo(new BigDecimal(9.0)) || 0 >= visceralFat.compareTo(new BigDecimal(14.0))) {
//            return "超标";
//        }
//        if (1 == visceralFat.compareTo(new BigDecimal(14.0))) {
//            return "过多";
//        }
//        return "";
//    }
//
//    /**
//     * 水分
//     * 男：水分%=-1.383*BMI+89.9 (Age: 20~30)
//     * 男：水分%=-1.289*BMI+83.84 (Age: 31~60)
//     * 男：水分%=-1.214*BMI+78.91 (Age: 61~80)
//     * 女：水分%=-1.4*BMI+86.64(Age: 20~30)
//     * 女：水分%=-1.23*BMI+76.12(Age: 31~60)
//     * 女：水分%=-1.039*BMI+64.34(Age: 61~80)
//     *
//     * @param sex
//     * @param BMI
//     * @param age
//     * @return
//     */
//    public static BigDecimal getMoisture(Byte sex, BigDecimal BMI, BigDecimal age) {
//        // 男：水分%=-1.383*BMI+89.9 (Age: 20~30)
//        // 男：水分%=-1.289*BMI+83.84 (Age: 31~60)
//        // 男：水分%=-1.214*BMI+78.91 (Age: 61~80)
//        if (sex.equals(SexEnum.MAN.getKey())) {
//            //年龄30以下
//            if (0 <= age.compareTo(new BigDecimal("30"))) {
//                return (new BigDecimal("-1.383").multiply(BMI).add(new BigDecimal("89.9")))
//                        .divide(new BigDecimal(100), BigDecimal.ROUND_HALF_EVEN)
//                        .setScale(4, BigDecimal.ROUND_HALF_EVEN);
//            }
//            //年龄31至60
//            if (0 <= age.compareTo(new BigDecimal("60"))) {
//                return (new BigDecimal("-1.289").multiply(BMI).add(new BigDecimal("83.84")))
//                        .divide(new BigDecimal(100), BigDecimal.ROUND_HALF_EVEN)
//                        .setScale(4, BigDecimal.ROUND_HALF_EVEN);
//            }
//            //年龄61以上
//            return (new BigDecimal("-1.214").multiply(BMI).add(new BigDecimal("78.91")))
//                    .divide(new BigDecimal(100), BigDecimal.ROUND_HALF_EVEN)
//                    .setScale(4, BigDecimal.ROUND_HALF_EVEN);
//        }
////         女：水分%=-1.4*BMI+86.64
////         女：水分%=-1.23*BMI+76.12
////         女：水分%=-1.039*BMI+64.34
//        if (sex.equals(SexEnum.WOMAN.getKey())) {
//            //年龄30以下
//            if (0 <= age.compareTo(new BigDecimal("30"))) {
//                return (new BigDecimal("-1.4").multiply(BMI).add(new BigDecimal("86.64")))
//                        .divide(new BigDecimal(100), BigDecimal.ROUND_HALF_EVEN)
//                        .setScale(4, BigDecimal.ROUND_HALF_EVEN);
//            }
//            //年龄31至60
//            if (0 <= age.compareTo(new BigDecimal("60"))) {
//                return (new BigDecimal("-1.23").multiply(BMI).add(new BigDecimal("76.12")))
//                        .divide(new BigDecimal(100), BigDecimal.ROUND_HALF_EVEN)
//                        .setScale(4, BigDecimal.ROUND_HALF_EVEN);
//            }
//            //年龄61以上
//            return (new BigDecimal("-1.039").multiply(BMI).add(new BigDecimal("64.34")))
//                    .divide(new BigDecimal(100), BigDecimal.ROUND_HALF_EVEN)
//                    .setScale(4, BigDecimal.ROUND_HALF_EVEN);
//        }
//        return new BigDecimal(0);
//    }
//
//    /**
//     * 水分描述
//     *
//     * @return
//     */
//    public static String getMoistureDes(Byte sex, BigDecimal moisture) {
//        //        不足，标准，优49.5,52.9
//        if (null == moisture) {
//            return "";
//        }
//        moisture = moisture.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        if (-1 == moisture.compareTo(new BigDecimal(49.5))) {
//            return "不足";
//        }
//        if (0 == moisture.compareTo(new BigDecimal(49.5)) || 0 >= moisture.compareTo(new BigDecimal(52.9))) {
//            return "标准";
//        }
//        if (1 == moisture.compareTo(new BigDecimal(52.9))) {
//            return "优";
//        }
//        return "";
//    }
//
//    /**
//     * 水含量：水份*实际体重
//     *
//     * @param weight
//     * @param moisture
//     * @return
//     */
//    public static BigDecimal getMoistureWeight(BigDecimal weight, BigDecimal moisture) {
//        return weight.multiply(moisture).setScale(4, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 水含量描述
//     *
//     * @return
//     */
////    public static String getMoistureWeightDes() {
////        return "";
////    }
//
//
//    /**
//     * 基础代谢
//     * 男：基础代谢率：88.362 + (13.397 x W) + (479.9 x H) - (5.677 x Age)
//     * 女：基础代谢率：447.593 + 9.247 x W + 309.8 x H - 4.330 x Age
//     * @param sex
//     * @param weight
//     * @param height
//     * @param age
//     * @return
//     */
//    public static BigDecimal getBasalMetabolism(Byte sex, BigDecimal weight, BigDecimal height, BigDecimal age) {
//        // 男：基础代谢率：88.362 + (13.397 x W) + (479.9 x H) - (5.677 x Age)
//        if (sex.equals(SexEnum.MAN.getKey())) {
//            return new BigDecimal("88.362")
//                    .add(new BigDecimal("13.397").multiply(weight))
//                    .add(new BigDecimal("479.9").multiply(height))
//                    .subtract(new BigDecimal("5.677").multiply(age)).setScale(2, BigDecimal.ROUND_HALF_UP);
//        }
//        // 女：基础代谢率：447.593 + 9.247 x W + 309.8 x H - 4.330 x Age
//        if (sex.equals(SexEnum.WOMAN.getKey())) {
//            return new BigDecimal("447.593")
//                    .add(new BigDecimal("9.247").multiply(weight))
//                    .add(new BigDecimal("309.8").multiply(height))
//                    .subtract(new BigDecimal("4.330").multiply(age)).setScale(2, BigDecimal.ROUND_HALF_UP);
//        }
//        return new BigDecimal(0);
//    }
//
//    /**
//     * 基础代谢描述
//     *
//     * @return
//     */
//    public static String getBasalMetabolismDes(Byte sex, BigDecimal basalMetabolism) {
//        // 未达标，达标 1544.5
//        if (null == basalMetabolism) {
//            return "";
//        }
//        if (-1 == basalMetabolism.compareTo(new BigDecimal(1544.5))) {
//            return "未达标";
//        }
//        if (0 <= basalMetabolism.compareTo(new BigDecimal(1544.5))) {
//            return "达标";
//        }
//        return "";
//    }
//
//    /**
//     * 骨量
//     * 男：骨量Kg=-0.113*BMI+7.3(先使用，根据实际测试修改)
//     * 女：骨量Kg=-0.097*BMI+0.635*H+5（先使用，根据实际测试修改）
//     * @return
//     */
//    public static BigDecimal getBoneMass(Byte sex, BigDecimal BMI, BigDecimal height) {
//        // 男：骨量Kg=-0.113*BMI+7.3(先使用，根据实际测试修改)
//        if (sex.equals(SexEnum.MAN.getKey())) {
//            return new BigDecimal("-0.113").multiply(BMI)
//                    .add(new BigDecimal("7.3")).setScale(4, BigDecimal.ROUND_HALF_UP);
//        }
//        // 女：骨量Kg=-0.097*BMI+0.635*H+5（先使用，根据实际测试修改）
//        if (sex.equals(SexEnum.WOMAN.getKey())) {
//            return new BigDecimal("-0.097").multiply(BMI)
//                    .add(new BigDecimal("0.635").multiply(height))
//                    .add(new BigDecimal("5")).setScale(4, BigDecimal.ROUND_HALF_UP);
//        }
//        return new BigDecimal(0);
//    }
//
//    /**
//     * 骨量描述
//     *
//     * @param sex
//     * @param boneMass
//     * @return
//     */
//    public static String getBoneMassDes(Byte sex, BigDecimal boneMass) {
////        偏低,标准,优2.4,3.1
//        if (null == boneMass) {
//            return "";
//        }
//        if (-1 == boneMass.compareTo(new BigDecimal(2.4))) {
//            return "偏低";
//        }
//        if (0 == boneMass.compareTo(new BigDecimal(2.4)) || 0 >= boneMass.compareTo(new BigDecimal(3.1))) {
//            return "标准";
//        }
//        if (1 == boneMass.compareTo(new BigDecimal(3.1))) {
//            return "优";
//        }
//        return "";
//    }
//
//
//    /**
//     * 蛋白质=(1-肥胖度)*0.208
//     */
//    public static BigDecimal getProtein(BigDecimal obesity) {
//        return new BigDecimal(1).subtract(obesity).multiply(new BigDecimal(0.208)).abs().setScale(4, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 蛋白质描述
//     *
//     * @return
//     */
//    public static String getProteinDes(Byte sex, BigDecimal protein) {
//        //        偏低,标准,偏高	16.0,20.0
//        if (null == protein) {
//            return "";
//        }
//        protein = protein.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        if (-1 == protein.compareTo(new BigDecimal(16.0))) {
//            return "偏低";
//        }
//        if (0 == protein.compareTo(new BigDecimal(16.0)) || 0 >= protein.compareTo(new BigDecimal(20.0))) {
//            return "标准";
//        }
//        if (1 == protein.compareTo(new BigDecimal(20.0))) {
//            return "偏高";
//        }
//        return "";
//    }
//
//
//    /**
//     * 去脂体重=体重-脂肪重量
//     */
//    public static BigDecimal getGreaseWeight(BigDecimal weight, BigDecimal fatWeight) {
//        return weight.subtract(fatWeight).setScale(4, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 去脂重量描述
//     *
//     * @return
//     */
////    public static String getGreaseWeightDes() {
////        return "";
////    }
//
//    /**
//     * 身体年龄
//     * 实际年龄+｛BMI-[20+（实际年龄-19）]｝/0.4
//     *
//     * @return
//     */
//    public static BigDecimal getBodyAge(BigDecimal bmi, BigDecimal age) {
//        //加法   bignum1.add(bignum2);       
//        //减法   bignum1.subtract(bignum2);  
//        //乘法   bignum1.multiply(bignum2);  
//        //除法   bignum1.divide(bignum2);  
//        bmi = bmi.setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        BigDecimal a = age.subtract(new BigDecimal("19"));
////        BigDecimal aa = new BigDecimal(0.2).multiply(a).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        BigDecimal b = new BigDecimal("20").add(a);
//        BigDecimal c = bmi.subtract(b);
//        BigDecimal bodyAge = age.add(c.divide(new BigDecimal("0.4")).setScale(2, BigDecimal.ROUND_HALF_EVEN));
//        // 最小年龄限制18岁，最大年龄限制不超80岁。 每个年龄段身体年龄区间±10岁。
//
//        // 身体年龄大于时间年龄10岁以上取实际年龄加10
//        if (bodyAge.compareTo(age.add(new BigDecimal(10))) == 1) {
//            bodyAge = age.add(new BigDecimal(10));
//        }
//        // 身体年龄小于时间年龄10岁以上取实际年龄加10
//        if (bodyAge.compareTo(age.subtract(new BigDecimal(10))) == -1) {
//            bodyAge = age.subtract(new BigDecimal(10));
//        }
//        // 身体年龄需要大于18
//        if (bodyAge.compareTo(new BigDecimal(18)) == -1) {
//            bodyAge = new BigDecimal(18);
//        }
//        // 身体年龄需要小于80
//        if (bodyAge.compareTo(new BigDecimal(80)) == 1) {
//            bodyAge = new BigDecimal(80);
//        }
//        return bodyAge.setScale(0, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    public static void main(String[] args) {
////        System.out.println(getStandardWeight(new BigDecimal(1.70), new Byte("1")));
////        System.out.println(getBMI(new BigDecimal(65.2), new BigDecimal(1.70)));
////        System.out.println(getBodyAge(new BigDecimal(20.6), new BigDecimal("21")));
////        System.out.println(getBodyAge(new BigDecimal(22.6), new BigDecimal("21")));
////        System.out.println(getBodyAge(new BigDecimal(27.4), new BigDecimal("21")));
////
////        System.out.println(getBodyAge(new BigDecimal(23.7), new BigDecimal("30")));
//        System.out.println(getBodyAge(new BigDecimal(24.76), new BigDecimal("32")));
////        System.out.println(getBodyAge(new BigDecimal(25.29), new BigDecimal("28")));
////        System.out.println(getBodyAge(new BigDecimal(23.52), new BigDecimal("70")));
//    }
//
//    /**
//     * 身体年龄描述
//     *
//     * @return
//     */
////    public static String getBodyAgeDes() {
////        return "";
////    }
//
//
//    /**
//     * 肥胖度=（实测体重-标准体重）/标准体重
//     */
//    public static BigDecimal getObesity(BigDecimal weight, BigDecimal standardWeight) {
//        return (weight.subtract(standardWeight)).divide(standardWeight, BigDecimal.ROUND_HALF_EVEN).setScale(4, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 肥胖度描述
//     *
//     * @return
//     */
//    public static String getObesityDes(Byte sex, BigDecimal obesity) {
//        if (null == obesity) {
//            return "";
//        }
//        obesity = obesity.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
//        // 消瘦-20.0;偏瘦-10.0;标准10.0;超重20.0;轻度30.0;中度50.0;重度大于50.0
//        if (-1 == obesity.compareTo(new BigDecimal(-20.0))) {
//            return "消瘦";
//        }
//        if (0 == obesity.compareTo(new BigDecimal(-20.0)) || 0 >= obesity.compareTo(new BigDecimal(-10.0))) {
//            return "偏瘦";
//        }
//        if (0 == obesity.compareTo(new BigDecimal(-10.0)) || 0 >= obesity.compareTo(new BigDecimal(10.0))) {
//            return "标准";
//        }
//        if (0 == obesity.compareTo(new BigDecimal(10.0)) || 0 >= obesity.compareTo(new BigDecimal(20.0))) {
//            return "超重";
//        }
//        if (0 == obesity.compareTo(new BigDecimal(20.0)) || 0 >= obesity.compareTo(new BigDecimal(30.0))) {
//            return "轻度";
//        }
//        if (0 == obesity.compareTo(new BigDecimal(30.0)) || 0 >= obesity.compareTo(new BigDecimal(50.0))) {
//            return "中度";
//        }
//        if (1 == obesity.compareTo(new BigDecimal(50.0))) {
//            return "重度";
//        }
//        return "";
//    }
//
//    /**
//     * 标准体重：男性：（身高cm－80）×70%，女性：（身高cm－70）×60%；
//     *
//     * @param height
//     * @param sex
//     * @return
//     */
//    public static BigDecimal getStandardWeight(BigDecimal height, Byte sex) {
//        if (SexEnum.WOMAN.getKey() == sex) {
//            return height.multiply(new BigDecimal(100)).subtract(new BigDecimal(70)).multiply(new BigDecimal(0.6)).abs().setScale(4, BigDecimal.ROUND_HALF_EVEN);
//        }
//        return height.multiply(new BigDecimal(100)).subtract(new BigDecimal(80)).multiply(new BigDecimal(0.7)).abs().setScale(4, BigDecimal.ROUND_HALF_EVEN);
//    }
//
//    /**
//     * 标准体重描述
//     *
//     * @return
//     */
////    public static String getStandardWeightDes() {
////        return "";
////    }
//}